Methods and apparatus to perform multi-level hierarchical demographic classification

ABSTRACT

Methods and apparatus to perform multi-level hierarchical demographic classification are disclosed. An example apparatus includes a neural network structured to process inputs at an input layer to form first outputs at a first output layer representing first possible classifications of an individual according to a demographic classification system at a first hierarchical level, and to process the first outputs to form second outputs at a second output layer representing possible combined classifications of the individual corresponding to combinations of the first possible classifications and second possible classifications of the individual according to the classification system at a second different hierarchical level; and a selector to select one of the second outputs, and associate with the individual a respective one of the first possible classifications and a respective one of the second possible classifications corresponding to a respective one of the possible combined classifications represented by the selected second output.

RELATED APPLICATION(S)

This patent arises from a continuation of U.S. Pat. Application No. 15/447,909, which is titled “METHODS AND APPARATUS TO PERFORM MULTI-LEVEL HIERARCHICAL DEMOGRAPHIC CLASSIFICATION,” and which was filed on Mar. 2, 2017. Priority to U.S. Pate. Application No. 15/447,909 is claimed. U.S. Patent Application No. 15/447,909 is hereby incorporated by reference herein in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to demographic classification and, more particularly, to methods and apparatus to perform multi-level hierarchical demographic classification.

BACKGROUND

Traditionally, audience measurement entities (AMEs) perform, for example, audience measurement and categorization, measurement of advertisement impressions, measurement of exposures to media, etc., link such measurement information with demographic information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example environment in which information representing demographic characteristics may be collected and multi-level hierarchical demographic classification performed.

FIG. 2 is a block diagram illustrating an example implementation for the classifier of FIG. 1 .

FIG. 3 is a block diagram illustrating an example implementation for the example classification engine of FIG. 2 .

FIG. 4 is a flow diagram representing example processes that may be implemented as machine-readable instructions that may be executed to implement the example classifier of FIGS. 1 and 2 to perform multi-level hierarchical demographic classification.

FIG. 5 illustrates an example processor system structured to execute the example instructions of FIG. 4 to implement the example classifier of FIGS. 1 and/or 2 .

FIGS. 6A, 6B, 6C, 6D and 6E are tables representing a multi-level classification system.

DETAILED DESCRIPTION

Methods and apparatus to perform multi-level hierarchical demographic classification are disclosed. An example apparatus to demographically classify an individual includes a querier to provide inputs based on demographic information for the individual; a neural network structured to have an input layer, a first output layer, and a second output layer subsequent to the first output layer, the neural network structured to process the inputs presented at the input layer to form first outputs at the first output layer, the first outputs representing first possible classifications of the individual according to a demographic classification system at a first hierarchical level, and process the first outputs to form second outputs at the second output layer, the second outputs representing possible combined classifications of the individual, the possible combined classification corresponding to combinations of the first possible classifications and second possible classifications of the individual according to the demographic classification system at a second hierarchical level different from the first hierarchical level; and a selector to select one of the second outputs at the second output layer, and associate with the individual a respective one of the first possible classifications and a respective one of the second possible classifications corresponding to a respective one of the possible combined classifications represented by the selected second output.

An example method of performing demographic classification of an individual includes obtaining data representative of demographic characteristics of an individual; processing the data with a neural network to form first outputs at a first output layer of the neural network, the first outputs representing first possible demographic classifications of the individual at a first hierarchical classification level; and processing the first outputs with the neural network to form second outputs at a second output layer of the neural network, the second outputs representing possible combined demographic classifications of the individual at combinations of the first possible demographic classifications and second possible demographic classifications, and the second possible demographic classifications at a second hierarchical classification level different from the first hierarchical classification level.

An tangible computer-readable storage medium includes instructions that, when executed, cause a machine to obtain data representative of demographic characteristics of an individual; process the data with a neural network to form first outputs at a first output layer of the neural network, the first outputs representing first possible demographic classifications of the individual at a first hierarchical classification level; and process the first outputs with the neural network to form second outputs at a second output layer of the neural network, the second outputs representing possible combined demographic classifications of the individual at combinations of the first possible demographic classifications and second possible demographic classifications, and the second possible demographic classifications at a second hierarchical classification level different from the first hierarchical classification level.

Reference will now be made in detail to non-limiting examples of this disclosure, examples of which are illustrated in the accompanying drawings. The examples are described below by referring to the drawings, wherein like reference numerals refer to like elements. When like reference numerals are shown, corresponding description(s) are not repeated and the interested reader is referred to the previously discussed figure(s) for a description of the like element(s).

Audience measurement entities (AMEs), such as The Nielsen Company, LLC (the assignee of the present application) and/or other businesses, often desire to link demographics with information representing, for example, exposure to advertisements, media, etc. In this way, AMEs can, for example, determine the effectiveness of an advertising campaign, determine products of interest to particular demographic categories, etc. In some examples, AMEs engage a panel of persons who have agreed to provide their demographic information and to have their activities monitored. When a panelist joins the panel, they provide detailed information concerning their identity and demographics (e.g., gender, age, ethnicity, income, home location, occupation, etc.). Additional demographic information may be collected as the panelist is monitored, and/or may be obtained from third parties. Such information can be obtained using methods that preserve the privacy of the panelist. Example panelists include, but are not limited to, individuals, groups of persons, households, neighborhoods, etc. For clarity of explanation, the disclosed examples will be described with reference to demographic classification of individuals, but this disclosure may be used to perform classification for any other type of panelist.

Given the large quantities of information, multi-level classification systems have evolved to classify individuals into categories, segments, groups, etc. based on demographic information or characteristics. An example multi-level classification system is Experian’s Mosaic® UK segmentation system shown in FIGS. 6A-6E. Experian’s Mosaic UK segmentation system classifies households and neighborhoods into 66 segments and 15 categories. The Mosaic UK segmentation system is multi-level and hierarchical. It assigns a household to a category (e.g., one of City Prosperity, Country Living, etc.), and assigns the household to a segment within the assigned category (e.g., Uptown Elite within the category of City Prosperity).

Given the vast amount of data currently accessible via the Internet, tens of thousands of pieces of information may be known or ascertained about an individual. The available information about an individual continues to increase on a daily basis. It is clear that the Internet has created circumstances in which it is infeasible, if not impossible, to manually or mentally classify an individual demographically according to a multi-level hierarchical arrangement of categories, segments, groups, etc. It is likewise infeasible, if not impossible, for someone to manually or mentally create a set of rules or logic that a processor can carry out to correctly classify an individual demographically according to a multi-level hierarchical arrangement of categories, segments, groups, etc. While the Internet has made available huge amounts of information on individuals, no methods or apparatus exist to process such huge amounts of data to properly classify an individual demographically according to a multi-level hierarchical arrangement of categories, segments, groups, etc. Example methods and apparatus disclosed herein utilize a deep neural network implementing residual learning to overcome at least these problems.

Prior methods and apparatus also fail to properly address multi-level hierarchical classification. For example, when an individual is to be classified into a category, and also into a segment within the category, etc., prior solutions make such category and segment classifications independently. In contrast, the example methods and apparatus disclosed herein perform the category and segment classifications in combination, thereby improving overall classification accuracy. Example disclosed methods and apparatus include a neural network having multiple output layers (one for each hierarchical layer of the multi-level classification system), and a loss function used in training the neural network that includes contributions from the multiple hierarchical output layers. In this way, inter-relatedness between classifications for different levels of the hierarchical classification system is explicitly included in classification decisions. For example, an individual will not be classified into a segment that does not belong with the category into which the individual is classified.

For simplicity, reference will be made herein to performing classification based on a two-level hierarchical demographic classification system. A non-limiting example of a two-level hierarchical demographic classification system is Experian’s Mosaic UK segmentation system discussed above and shown in FIGS. 6A-6E. However, the example methods and apparatus disclosed herein may be used to perform multi-level hierarchical demographic classification using classifications having other depths (e.g., more than two layers) and/or breadth (e.g., other numbers of categories and/or segments). Further, the examples disclosed herein may be used to perform multi-level hierarchical classification for other purposes such as, but not limited to, audience measurement, market research, medical research, municipal planning, product development, biological studies, taxonomy, epidemiological research, etc.

FIG. 1 illustrates an example system 100 having an AME 102 that, among other things, classifies individuals with an example multi-level hierarchical demographic classification system 104. In some examples, the classification system 104 is a two-level hierarchical demographic classification system defined by a data structure (e.g., a table such as that shown in FIGS. 6A-6E). In the example of FIGS. 6A-6E, an individual is classified into one of the categories (e.g., category A - City Prosperity) shown in the first column, and also into a segment (e.g., one of A01, A02, A03 and A04 when A is the selected category) in the second column.

To store demographic information, identity information, etc., associated with individuals, the example AME 102 includes an example database 106. In the example of FIG. 1 , information is stored in the database 106 using a record 108 for each individual having information in the database 106. As shown, each record 108 has a plurality of example fields 150A, 150B, 155A, 155B, 155C, ..., 160A, 160B, 160C, ... The fields 150A, 150B, 155A, 155B, 155C, ..., 160A, 160B, 160C, ... may store information in a variety of forms. For example, free form information, value of a variable information, item selected from a list, a check box state, etc. Information may be stored in the database 106 using any number and/or type(s) of data structure(s). The database 106 may be implemented using any number and/or type(s) of computer-readable storage mediums. The number and/or type(s) of information stored in one record 108 need not be the same number and/or type(s) of information stored in another record 108. For example, a free form field may record that a first individual has a horse named Daisy, while that same free form field in another record is used to record that a second individual goes sky diving at Jumping Joes. Demographic classifications previous made or obtained for an individual may also be included in their record 108 and used during subsequent demographic classifications.

The information stored in a record 108 may be received (e.g., obtained) by the AME 102, and/or may be received (e.g., obtained) from one or more data example collectors 110A, 110B ... 110H. In the example of FIG. 1 , the information is received from the one or more data collectors 110A, 110B ... 110H via the Internet 112, although other methods of receiving information may be used. The information stored in a record 108 may have been obtained by different ones of the AME 102 and the data collectors 110A, 110B ... 110H, at the same or different times. Further, the information stored in a record 108 may be changed (e.g., augmented, updated, replaced, removed, etc.) over time by any or all of the AME 102 and the data collectors 110A, 110B ... 110H. The data collectors 110A, 110B ... 110H may be, for instance, other AMEs, content publishers, advertisers, third parties, etc. who collect demographic and identity information, etc.

To manage the records 108 stored in the database 106, the example AME 102 includes an example record manager 114. The record manager 114 receives information and changes from the AME 102 and/or the data collectors 110A, 110B ... 110H for an individual, and updates the individual’s record 108 based on the information and changes. The record manager 114 also implements an application programming interface (API) that enables the retrieval of all of, or particular portion(s) of a record 108 for an individual.

To demographically classify an individual according to the example multi-level hierarchical classification system 104, the example AME 102 includes an example classifier 116. As disclosed below in more detail in connection with FIGS. 2 and 3 , the example classifier of FIG. 1 processes a record 108 for an individual to form a multi-level hierarchical demographic classification for the individual. The record 108 can be updated with the determined classification, or, for example, the determined classification may be used otherwise by the AME 102, or another entity.

Turning to FIG. 2 , an example implementation of the example classifier 116 of FIG. 1 is shown. In the example of FIG. 2 , the classifier 116 classifies an individual 204 into a demographic category C, and a demographic segment S of the demographic category C, where the categories and segments are arranged hierarchically. In the case of a three-level classification, the individual 204 may, for instance, additionally be classified into a demographic sub-segment SS of the demographic segment S. It should be clear in view of the following that classifications may be made based on any number of hierarchical levels having any number of possible classifications per level using the examples found in this disclosure.

To obtain a record 108 for processing, the example classifier 116 of FIG. 2 includes an example querier 202. For an indicated individual 204, the example querier 202 of FIG. 2 requests the respective record 108 for the individual 204 from the record manager 114. The example querier 202 forms example inputs 206 for an example classification engine 208 from the obtained record 108. The example inputs 206 of FIG. 2 have a consistent format, meaning and content based on the implementation of the classification engine 208. The format, meaning and content of the inputs 206 are selected to represent the particular information from which demographic classifications are to be made by the classification engine 208. In some examples, the first of the inputs 206 is age in decimal, the second is zip code in decimal, the third is marriage status as one of four values representing married, divorced, widowed and single, etc. As discussed above, information in the record 108 need not have a consistent format, meaning and content. Thus, while the inputs 206 may be the same as the contents of the record 108, they may be different. The example querier 202 uses any number and/or type(s) of methods, conversions, formatting, etc. to provide as many of the inputs 206 as possible given the contents of the record 108. For example, the record 108 may list the size of the individual’s house as 3217 square feet, but be reflected in the inputs 206 as being a house between 3000 and 3500 square feet. In some examples, the record 108 may not contain information related to all of the inputs 206, in which case they may be left blank or empty. In some examples, not all the information in the record 108 is converted for use as an input 206.

To determine information from which multi-level hierarchical demographic classifications can be made, the example classifier 116 includes the example classification engine 208. An example implementation of the classification engine 208 in the form of an example neural network 300 is shown in FIG. 3 . In general, a neural network is a fully or partially interconnected two-dimensional (2D) or three-dimensional (3D) network or mesh of nodes. The connections between nodes have associated coefficients that represent the influence that the signal output of one node has on another. Typically, the coefficients are trained or learned during a training or learning phase. For examples, the coefficients may be trained using known input/output combinations, or may be training using only inputs.

In the example of FIG. 3 , the neural network 300 includes an example input layer 302 to receive the inputs 206 from the querier 202, and a plurality of example neural network modules 304A ... 304Z. In some examples, each of the inputs 206 provides an input value for all of the neural network nodes (shown as circles in FIG. 3 ) that form the input layer 302. In some examples, the neural network modules 304A ... 304Z are hidden, three-layer, fully-connected neural networks. In some instances, the neural network modules 304A ... 304Z are residual neural network modules, and inputs and outputs of the neural network module 304A ... 304Z are connected to provide residual learning, thereby improve learning performance when the neural network 300 is large and/or deep. In the illustrated example, each of the inputs 206 is coupled to each of the inputs of the first neural network module 304A ... 304Z, and each neural network module 304A ... 304Z is fully interconnected with its preceding and following neural network modules 304A ... 304Z. The input layer 302 and the neural network modules 304A ... 304Z may be implemented using any appropriate neural network architecture. Other neural network topologies and/or dimensions may be used based on characteristics of the inputs, classifications to be made, etc.

Starting from the inputs 206, the example input layer 302 and the example neural network modules 304A ... 304Z form a set of examples signals 306 at an example segment output layer 308 of neural nodes (shown as circles in FIG. 3 ). Each of the signals 306 and its corresponding node has a one-to-one correspondence with one of the possible segment classifications from which the segment S is selected. The possible segment classifications are associated with classification of the entity at a first (e.g., segment) level of the multi-level hierarchical classification system. For example, if there are forty-seven possible segment classifications, then there are forty-seven signals 306. The value of a signal 306 represents how strongly the neural network 300 indicates the individual 204 should be classified into the segment corresponding to the signal 306.

To form example output signals 310A at an example sorting output layer 312, the example neural network 300 of FIG. 3 performs an example “softmax” operation on the signals 306. There is a one-to-one correspondence between the signals 306 and the signals 310A. The softmax operation converts the signals 306 to the signals 310A as probabilities (e.g., between 0 and 1) that the individual 204 should be classified with the segment corresponding to the value 310A. An example softmax operation forms the example signals 310A by modifying the signals 306 to each have a value in the range of zero to one, where the sum of the modified values is one. An example softmax operation may be expressed mathematically as:

$p_{j} = \frac{e^{v_{j}}}{\sum_{i}e^{v_{i}}}$

where v_(j) are the signals 306, and p_(j) are the signals 310A. To form example output signals 310B at the example sorting layer 312, the example neural network 300 sorts the signals 306 to form the signals 310B so the signals 310B corresponding to segments associated with the same category are adjacent.

To form output signals 314 at an example combining output layer 316, the example neural network 300 of FIG. 3 performs an example “max pooling” operation on the signals 310B. Within each category, max pooling selects one of the signals 310B associated with the category that has the highest probability that classification with that segment for that category is correct, given that category is selected. The selected signals 310B for each category form example signals 314. Each of the signals 314 corresponds to a particular, valid and possible category/segment combination classification. The combination is valid and possible in that the combination is present in the multi-level classification system 104. The possible combination classifications represent a combination of a possible segment classification (at the segment or 1st level of the hierarchical classification) and a possible category classification (at the category or 2^(nd) level of the hierarchical classification). By forming signals 314 that represent only valid possible combinations of category and segment, the examples disclosed herein can ensure consistency of the resultant classification across the levels of a multi-level classification system. For example, an individual cannot be classified with a segment that does not belong with the category to which they are classified. Moreover, by making concurrent category and segment classifications, the overall classification is more likely to correct, as compared to independent classification decisions.

To form example output signals 318 at an example probability computing output layer 320, the example neural network 300 performs the softmax operation to convert the signals 314 into signals 318 that represent the probability (e.g., between 0 and 1) that classification with the category and segment combination associated with a signal 318 is correct. Each of the probability signals 318 corresponds to a particular category/segment combination. In some examples, the signal 318 representing the highest probability is selected, and the individual 204 is classified with the corresponding category/segment combination. When, for example, three-level hierarchical classification is implemented, sorting can be added to output layer 320, and additional combining and probability computing output layers added following the layer 320. The additional probabilities represent the probabilities that a particular combination of category/segment/sub-segment is the correct classification.

Returning to FIG. 2 , to classify the individual 204, the example classifier 116 includes an example selector 210. The example selector 210 of FIG. 2 selects the signal 318 output by the classification engine 208 representing the highest probability. In the example of FIG. 3 , the signals 318 are associated with the final output layer 320 of the neural network 300. Each of the signals 318 represents the probability that selection of a respective category/segment combination is correct. In some examples, the selector 210 classifies the individual 204 with the category/combination associated with the signal 318 representing the highest probability. In other examples, other decision criteria may be used. For example, others of the signals 306, 310A, 314 and/or 318 may considered and/or combined to select a category/segment combination.

To train and/or update the classification engine 208, the example classifier 116 of FIG. 2 includes an example loss determiner 212. The example loss determiner 212 of FIG. 2 computes an example loss value 214 that represents the errors reflected in the output signals 310A and the output signals 318. The loss value 214 is provided to the classification engine 208. The classification engine 208 updates its coefficients based on the loss 214. In some examples, the classification engine 208 uses a stochastic gradient descent algorithm or method to update the coefficients to reduce the loss 214. An example loss function includes contributions from the segments as reflected in the signals 310A, contributions from the categories as reflected in the signals 318, and contributions from a normalization term. The normalization term is included to reduce the likelihood that the classification engine 208 learns incorrect coefficients, sometimes referred to statistically as overfitting, because of the complexity of the classification problem and/or the classification engine 208. In some examples, the contributions from the segments and the categories are expressed as cross-entropies. In some examples, the contributions are combined as a weighted sum of the contributions. An example loss function can be expressed mathematically as:

$\begin{array}{l} {loss(x) = - w_{1}{\sum\limits_{i = 1}^{N}{\sum\limits_{j = 1}^{M}{S_{j}^{i}log\left( {{\hat{S}}_{j}^{i}(x)} \right)}}} -} \\ {w_{2}{\sum\limits_{i = 1}^{N}{\sum\limits_{j = 1}^{L}{C_{j}^{i}log\left( {{\hat{C}}_{j}^{i}(x)} \right)}}} + w_{3}L_{1}(x)} \end{array}$

where x denotes the coefficients of the classification engine 208, N is the number of records 108, each record corresponding to one person (audience, in advertisement), M is the number of possible segments, L is the number of possible categories, S_(j) ^(i) are one-hot coded segment labels having a value of one (if the individual belongs to segment j) or zero (if not), Ŝ_(j) ^(i) is the predicted probability of segment j (e.g., one of the signals 310A), C_(j) ^(i) are one-hot coded category labels having a value of one (if the individual belongs to category j) or zero (if not), and Ĉ_(j) ^(i) is the probability of category j (e.g., the signals 318), and the function L₁(x) is the L1 regularization of x. The weight factors, w₁, w₂ and w₃, allow the relative importance of the three terms to be adjusted. In some examples, they all have a value of one. In some examples, the weight factors, w₁, w₂ and w₃, can be adaptively adjusted as the classification engine 208 is trained. Other suitable loss functions may be used. For example, if three-level hierarchical classification is implemented, another cross-entropy term may be added.

While example implementations of the example classifier 116, the example querier 202, the example classification engine 208, the example selector 210, the example loss determiner 212, the example neural network 300, the example neural network layers 302, 308, 312, 316 and 320, and the example neural network modules 304A ... 304Z are shown in FIGS. 2 and 3 , one or more of the elements, processes and/or devices illustrated in FIGS. 2 and 3 may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example classifier 116, the example querier 202, the example classification engine 208, the example selector 210, the example loss determiner 212, the example neural network 300, the example neural network layers 302, 308, 312, 316 and 320, and the example neural network modules 304A ... 304Z of FIGS. 2 and 3 may be implemented by hardware, software, firmware and/or any combination of hardware, software, and/or firmware. Thus, for example, any of the example classifier 116, the example querier 202, the example classification engine 208, the example selector 210, the example loss determiner 212, the example neural network 300, the example neural network layers 302, 308, 312, 316 and 320, and the example neural network modules 304A ... 304Z could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), graphics processing unit(s) (GPU(s)), digital signal processor(s) (DSP(s)), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example classifier 116, the example querier 202, the example classification engine 208, the example selector 210, the example loss determiner 212, the example neural network 300, the example neural network layers 302, 308, 312, 316 and 320, and the example neural network modules 304A ... 304Z is/are hereby expressly defined to include a tangible computer-readable storage medium storing the software and/or firmware. Further still, the example classifier 116, the example querier 202, the example classification engine 208, the example selector 210, the example loss determiner 212, the example neural network 300, the example neural network layers 302, 308, 312, 316 and 320, and the example neural network modules 304A ... 304Z of FIGS. 2 and 3 may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in FIGS. 2 and 3 , and/or may include more than one of any or all of the illustrated elements, processes and devices.

FIG. 4 is a flow diagram representative of example process(es) that may be implemented as coded computer-readable instructions, the coded instructions may be executed to implement the classifier 116 of FIGS. 1 and 2 to perform multi-level hierarchical demographic classification. In this example, the coded instructions comprise one or more programs for execution by a processor such as the processor 512 shown in the example processor platform 500 discussed below in connection with FIG. 5 . The program(s) may be embodied in the coded instructions and stored on one or more tangible computer-readable storage mediums associated with the processor 412. One or more of the program(s) and/or parts thereof could alternatively be executed by a device other than the processor 512. One or more of the programs may be embodied in firmware or dedicated hardware. Further, although the example process(s) is/are described with reference to the flowchart illustrated in FIG. 4 , many other methods of implementing the example classifier 116 may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.

As mentioned above, the example process(es) of FIG. 4 may be implemented using coded instructions (e.g., computer-readable instructions and/or machine-readable instructions) stored on one or more tangible computer-readable storage mediums. As used herein, the term tangible computer-readable storage medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, “tangible computer-readable storage medium” and “tangible machine-readable storage medium” are used interchangeably. Additionally, or alternatively, the example process(es) of FIG. 4 may be implemented using coded instructions (e.g., computer-readable instructions and/or machine-readable instructions) stored on one or more non-transitory computer mediums. As used herein, the term non-transitory computer-readable storage medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, “non-transitory computer-readable storage medium” and “non-transitory machine-readable storage medium” are used interchangeably.

Example tangible computer-readable storage mediums include, but are not limited to, any tangible computer-readable storage device or tangible computer-readable storage disk such as a memory associated with a processor, a memory device, a flash drive, a digital versatile disk (DVD), a compact disc (CD), a Blu-ray disk, a floppy disk, a hard disk drive, a random access memory (RAM), a read-only memory (ROM), etc. and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information).

The example process of FIG. 4 includes the example querier 104 obtaining a record 108 for an individual 204 from the example database 104 (block 405), and forming the inputs 206 for the example classification engine 208 (block 410). At block 415, the example classification engine 208 processes the inputs 206 to form the signals 306 for respective segments at the example segment output layer 308 (block 416), forms the signals 310A and 310B at the example sorted output layer 312 (block 417), forms the signals 314 at the example combining output layer 316 (block 418), and forms the signals 318 at the example probabilities output layer 320 (block 419).

If the classification engine 208 is being trained (block 420), the example loss determiner 212 computes a loss value 214 using, for example, the equation disclosed herein (block 425). The loss value 214 is fed back to the classification engine 208, which updates its coefficients based on the loss value 214 (block 430). Control then exits from the example process of FIG. 4 .

Returning to block 420, if the classification engine 208 is not being trained (block 420), the example selector 210 selects a category/segment combination for the user 204 based on the output signals 318 at the probabilities output layer 320 (block 435), and control exits from the example process of FIG. 4 .

FIG. 5 is a block diagram of an example processor platform 500 configured to execute the process(es) of FIG. 5 to implement the classifier 116 of FIGS. 1 and 2 . The processor platform 500 can be, for example, a server, a personal computer, or any other type of computing device.

The processor platform 500 of the illustrated example includes a processor 512. The processor 512 of the illustrated example is hardware. For example, the processor 512 can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, or controllers from any desired family or manufacturer.

In the illustrated example, the processor 512 stores an example record 108, and implements the querier 202, the selector 210 and the loss determiner described above in connection with FIG. 2 , and/or in the documents attachment hereto.

The processor 512 of the illustrated example includes a local memory 513 (e.g., a cache). The processor 512 of the illustrated example is in communication with a main memory including a volatile memory 514 and a non-volatile memory 516 via a bus 518. The volatile memory 514 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory (RAM) device. The non-volatile memory 316 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 514, 516 is controlled by a memory controller.

In the illustrated example, any one or more of the local memory 513, the RAM 514, the read only memory 516, and/or a mass storage device 528 may store the example database 104.

The processor platform 500 of the illustrated example also includes an interface circuit 520. The interface circuit 520 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.

In the illustrated example, one or more input devices 522 are connected to the interface circuit 520. The input device(s) 522 permit(s) a user to enter data and commands into the processor 512. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.

One or more output devices 524 are also connected to the interface circuit 520 of the illustrated example. The output devices 524 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a light emitting diode (LED), a printer and/or speakers). The interface circuit 520 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor.

The interface circuit 520 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 526 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).

The processor platform 500 of the illustrated example also includes one or more mass storage devices 528 for storing software and/or data. Examples of such mass storage devices 528 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.

Coded instructions 532 include the machine-readable instructions of FIG. 4 and may be stored in the mass storage device 528, in the volatile memory 514, in the non-volatile memory 516, and/or on a removable tangible computer readable storage medium such as a CD or DVD.

From the foregoing, it will be appreciated that methods, apparatus and articles of manufacture have been disclosed which enhance the operations of a computer to improve the correctness of and possibility to perform multi-level hierarchical classification. In some examples, computer operations can be made more efficient based on the above equations and techniques for performing multi-level hierarchical classification. That is, through the use of these processes, computers can operate more efficiently by relatively quickly performing multi-level hierarchical classification. Furthermore, example methods, apparatus, and/or articles of manufacture disclosed herein identify and overcome inaccuracies and inability in the prior art to perform multi-level hierarchical classification.

In this specification and the appended claims, the singular forms “a,” “an” and “the” do not exclude the plural reference unless the context clearly dictates otherwise. Further, conjunctions such as “and,” “or,” and “and/or” are inclusive unless the context clearly dictates otherwise. For example, “A and/or B” includes A alone, B alone, and A with B. Further, as used herein, when the phrase “at least” is used in this specification and/or as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended.

Further, connecting lines or connectors shown in the various figures presented are intended to represent exemplary functional relationships and/or physical or logical couplings between the various elements. It should be noted that many alternative or additional functional relationships, physical connections or logical connections may be present in a practical device. Moreover, no item or component is essential to the practice of the embodiments disclosed herein unless the element is specifically described as “essential” or “critical”.

Terms such as, but not limited to, approximately, substantially, generally, etc. are used herein to indicate that a precise value or range thereof is not required and need not be specified. As used herein, the terms discussed above will have ready and instant meaning to one of ordinary skill in the art.

Although certain example methods, apparatuses and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. It is to be understood that terminology employed herein is for the purpose of describing particular aspects, and is not intended to be limiting. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent. 

1-20. (canceled)
 21. A hierarchical classification apparatus comprising: interface circuitry; machine readable instructions; and processor circuitry to execute the machine readable instructions to at least: implement a neural network to process demographic information to classify an individual, the neural network including an input layer, a first output layer, a sorting layer and a second output layer, the input layer to accept the demographic information, the first output layer to output a first set of output values, ones of the first set of output values to correspond respectively with ones of a first set of demographic classifications associated with a first level of a classification hierarchy, the sorting layer to convert the first set of output values into a second set of output values that corresponds respectively with the first set of output values, the sorting layer to also sort the first set of output values into groups of sorted output values, ones of the groups to correspond respectively with ones of a second set of demographic classifications associated with a second level of the classification hierarchy different from the first level, the second output layer to convert the groups of sorted output values into a third set of output values, ones of the third set of output values to correspond respectively to ones of the groups; and output a demographic classification for the individual based on the second set of output values and the third set of output values.
 22. The apparatus of claim 21, wherein the sorting layer is to perform softmax operations on the first set of output values to convert the first set of output values into the second set of output values.
 23. The apparatus of claim 21, wherein the second output layer is to perform max pooling operations on the groups of sorted output values to convert the groups of sorted output values into the third set of output values.
 24. The apparatus of claim 21, wherein the second output layer is to perform softmax operations on ones of the sorted output values selected from the groups of sorted output values to convert the groups of sorted output values into the third set of output values.
 25. The apparatus of claim 21, wherein the second set of output values represents probabilities that the individual belongs to the ones of the first set of demographic classifications.
 26. The apparatus of claim 21, wherein the third set of output values represents probabilities that the individual belongs to the ones of the second set of demographic classifications.
 27. The apparatus of claim 21, wherein the processor circuitry is to update the neural network based on the second set of output values and the third set of output values.
 28. At least one non-transitory computer readable medium comprising computer readable instructions to cause processor circuitry to at least: execute a neural network to process demographic information to classify an individual, the neural network including an input layer, a first output layer, a sorting layer and a second output layer, the input layer to accept the demographic information, the first output layer to output a first set of output values, ones of the first set of output values to correspond respectively with ones of a first set of demographic classifications associated with a first level of a classification hierarchy, the sorting layer to convert the first set of output values into a second set of output values that corresponds respectively with the first set of output values, the sorting layer to also sort the first set of output values into groups of sorted output values, ones of the groups to correspond respectively with ones of a second set of demographic classifications associated with a second level of the classification hierarchy different from the first level, the second output layer to convert the groups of sorted output values into a third set of output values, ones of the third set of output values to correspond respectively to ones of the groups; and output a demographic classification for the individual based on the second set of output values and the third set of output values.
 29. The at least one non-transitory computer readable medium of claim 28, wherein the sorting layer is to perform softmax operations on the first set of output values to convert the first set of output values into the second set of output values.
 30. The at least one non-transitory computer readable medium of claim 28, wherein the second output layer is to perform max pooling operations on the groups of sorted output values to convert the groups of sorted output values into the third set of output values.
 31. The at least one non-transitory computer readable medium of claim 28, wherein the second output layer is to perform softmax operations on ones of the sorted output values selected from the groups of sorted output values to convert the groups of sorted output values into the third set of output values.
 32. The at least one non-transitory computer readable medium of claim 28, wherein the second set of output values represents probabilities that the individual belongs to the ones of the first set of demographic classifications.
 33. The at least one non-transitory computer readable medium of claim 28, wherein the third set of output values represents probabilities that the individual belongs to the ones of the second set of demographic classifications.
 34. The at least one non-transitory computer readable medium of claim 28, wherein the instructions are to cause the processor circuitry to update the neural network based on the second set of output values and the third set of output values.
 35. A hierarchical classification method comprising: executing a neural network to process demographic information to classify an individual, the neural network including an input layer, a first output layer, a sorting layer and a second output layer, the executing of the neural network including: accepting the demographic information at the input layer; outputting a first set of output values from the first output layer, ones of the first set of output values to correspond respectively with ones of a first set of demographic classifications associated with a first level of a classification hierarchy; converting, at the sorting layer, the first set of output values into a second set of output values that corresponds respectively with the first set of output values; sorting, at the sorting layer, the first set of output values into groups of sorted output values, ones of the groups to correspond respectively with ones of a second set of demographic classifications associated with a second level of the classification hierarchy different from the first level; and converting the groups of sorted output values into a third set of output values at the second output layer, ones of the third set of output values to correspond respectively to ones of the groups; and outputting a demographic classification for the individual based on the second set of output values and the third set of output values.
 36. The method of claim 35, wherein the sorting layer performs softmax operations on the first set of output values to convert the first set of output values into the second set of output values.
 37. The method of claim 35, wherein the second output layer performs max pooling operations on the groups of sorted output values to convert the groups of sorted output values into the third set of output values.
 38. The method of claim 35, wherein the second output layer performs softmax operations on ones of the sorted output values selected from the groups of sorted output values to convert the groups of sorted output values into the third set of output values.
 39. The method of claim 35, wherein the second set of output values represents probabilities that the individual belongs to the ones of the first set of demographic classifications, and the third set of output values represents probabilities that the individual belongs to the ones of the second set of demographic classifications.
 40. The method of claim 35, further including updating the neural network based on the second set of output values and the third set of output values. 